#random模块,用来生成随机数
import random
import sys

# i=10
# while i:
#     a=random.randint(1,10)  #这里的区间是左闭右闭
#     if a==6:
#         sys.exit(0)     #直接退出程序
#     print(a)
#     i-=1


# #定义一个范围求和的函数
# def Add(beg,end):
#     sum=0
#     for i in range(beg,end+1):
#         sum+=i
#     return sum
#
# res=Add(1,100)
# print(res)


# #pthon中函数可允许返回多个值
# def test(a,b,c):
#     return a+1,b+1,c+1
#
# a,b,c=test(1,2,3)
# print(a,b,c)
#
# #如果只关注返回值的一部分,那么可以用_占位不需要关注的
# a,_,c=test(100,200,300)
# print(a,b,c)


# x=10
# def test():
#     #global关键字：声明x是全局的变量
#     global x
#     #修改全局变量x
#     x=20
#
#
# print(x)
# test()
# print(x)


#python中只有函数和类有变量的作用域,if,for while这些语句没有
#在判断语句中定义的变量,在判断语句外部依然可以使用
# for i in range(1,11):
#     print(i)
#
# print("-------------")
# print(i)
#
#
# if True:
#     a=100
# print(a)


#函数调试
#Shift+F9开始调试.快捷键F7步入,可进入调用函数内部.F8步过,不会进入函数内部
# def test():
#     print("test")
#     print("test")
#     print("test")
#     print("test")
#
# print("a")
# test()
# print("a")
# test()


#函数的链式调用:用一个函数的返回值作为另一个函数的参数
#函数的嵌套调用:在函数中调用另外的函数


#函数的默认参数
# def test(a,b,c=1):
#     print(a,b,c)
#
# test(6,6,)
#需要注意的是,有默认参数的形参必须放在没有默认参数的形参之后(C++中的缺省参数,是从右往左缺省)


#函数的关键字传参:按照参数的名字传参,无需按照顺序
def test(x,y):
    print(f"x={x}")
    print(f"y={y}")

test(y=1,x=2)
#需要注意的是,如果位置参数和关键字参数混合使用,关键字参数要在位置参数的后面
